class Rock:
    def __init__(self, name, sex):
        self.name = name
        self.sex = sex

    def eat(self):
        print(self.name+'他在听戏')


ZhongLi = Rock('钟离', '男')
NingGuang = Rock('凝光', '女')


# 绑定动态属性，给 ZhongLi 加上武器的类型
ZhongLi.weapon = '长枪'

# 输出钟离的武器
print(ZhongLi.name, ZhongLi.sex, ZhongLi.weapon)

# 凝光没有绑定武器，所以凝光没有武器
# print(NingGuang.name, NingGuang.sex, NingGuang.weapon)
# --> AttributeError: 'Rock' object has no attribute 'weapon'


# 绑定动态方法
# 第一步 先定义类之外的 函数
def place():
    print('她在群玉阁')


# 把 place() 绑定给 NingGuang 就会变成动态方法
NingGuang.place = place
# 调用 place 这个动态方法
NingGuang.place()

# ZhongLi 无法调用这个方法，ZhongLi 没有绑定这个方法
# ZhongLi.place()  --> AttributeError: 'Rock' object has no attribute 'place'
